package com.study.work;


import java.util.List;

/**
 * 
 * <p>Description: </p> 
 * @author luyadong    
 * @version $ID: GenericRepository.java, V 1.0 2018年4月19日 ranber Exp $
 */
public interface GenericRepository<BO, C> {

    /**
     * 插入单条记录
     * 
     * @param bo          单条记录
     */
    public int store(BO bo);
    
    /**
     * 插入单条记录
     * 
     * @param bo          单条记录
     */
    public int insertSelective(BO bo);

    /**
     * 批量插入
     * @param list       记录列表
     */
    public void addList(List<BO> list);

    /**
     * 删除记录
     * 
     * @param bo         记录唯一标识
     */
    public void delete(BO bo);

    /**
     * 批量删除
     * @param list       记录标识列表
     */
    public void deleteList(List<BO> list);

    /**
     * 更新记录
     * 
     * @param bo          待更新的记录
     */
    public int update(BO bo);

    /**
     * 更新记录
     *
     * @param list          待更新的记录
     */
    public void updateList(List<BO> list);

    /**
     * 单笔查询
     * 
     * @param id         记录唯一标识
     * @param isLock     是否锁定
     * @return           符合条件的记录
     */
    public BO queryById(Object id, boolean isLock);

    /**
     * 查询符合条件的所有记录
     * 
     * @param bo       	查询条件
     * @return           符合条件的记录列表
     */
    public List<BO> queryList(BO bo);

    /**
     * 更新记录
     * @param bo
     * @return
     */
    public int updateByPrimaryKeySelective(BO bo);

}
